<?php
/**
 * mq pooling
 * @package common_lib_mq
 */
/**
 * mq pooling
 * @author pandajingjing
 * @package common_lib_mq
 */
class mq_pooling{

	/**
	 * mq通道实例
	 * @var object
	 */
	private static $_objInstance=NULL;

	/**
	 * 通道池
	 * @var array
	 */
	private static $_arrChannel=array();

	/**
	 * 构造函数
	 */
	private function __construct(){

	}

	/**
	 * 析构函数
	 */
	function __destruct(){

	}

	/**
	 * 构造函数
	 */
	private function __clone(){

	}

	/**
	 * 获取实例
	 * @return object
	 */
	static function getInstance(){
		if(!(self::$_objInstance instanceof self)){
			self::$_objInstance=new self();
		}
		return self::$_objInstance;
	}

	/**
	 * 获取通道
	 * @param string $p_strChannel
	 */
	static function getChannel($p_strChannel='mq_default_channel'){
		if(!isset(self::$_arrChannel[$p_strChannel])){
			self::$_arrChannel[$p_strChannel]=self::createChannel($p_strChannel);
		}
		return self::$_arrChannel[$p_strChannel];
	}
	
	/**
	 * 创建通道
	 * @param string $p_strChannel
	 */
	private static function createChannel($p_strChannel){
		load_lib('/mq/mq');
		return new mq_mq($p_strChannel);
	}
}